

public class Factura {
	private Integer ID;
	private Reserva reserva;
	private Oferta oferta;
	private Double importe;
	private Fecha fecha;
	private Persona titular;
	public Factura( Reserva reserva, Oferta oferta,
			Fecha fecha, Persona titular){
		this.reserva=reserva;
		this.oferta=oferta;
		this.fecha=fecha;
		this.titular=titular;
		if(getOferta()!=null){
			importe=reserva.getPrecio()-(reserva.getPrecio()*((getOferta().getDescuento()/100)));
		}else{
			importe=reserva.getPrecio();
		}
		
	}
	public Integer getID() {
		return ID;
	}
	public void setID(Integer iD) {
		ID = iD;
	}
	public Reserva getReserva() {
		return reserva;
	}
	public void setReserva(Reserva reserva) {
		this.reserva = reserva;
	}
	public Oferta getOferta() {
		return oferta;
	}
	public void setOferta(Oferta oferta) {
		this.oferta = oferta;
	}
	public Double getImporte() {
		return importe;
		
	}
	public void setImporte(Double importe) {
		this.importe = importe;
	}
	public Fecha getFecha() {
		return fecha;
	}
	public void setFecha(Fecha fecha) {
		this.fecha = fecha;
	}
	public Persona getTitular() {
		return titular;
	}
	public void setTitular(Persona titular) {
		this.titular = titular;
	}
	public void modificarFactura(Factura f){
		setFecha(f.getFecha());
		setID(f.getID());
		setImporte(f.getImporte());
		setOferta(f.getOferta());
		setReserva(f.getReserva());
		setTitular(f.getTitular());
		
	}
	public boolean equals(Factura f){
		if(f.getOferta()==null && getOferta()==null){
		return getImporte().equals(f.getImporte()) && getFecha().equals(f.getFecha()) && getReserva().equals(f.getReserva()) && getTitular().equals(f.getTitular());
		}
		else{
		return getImporte().equals(f.getImporte()) && getFecha().equals(f.getFecha()) && getReserva().equals(f.getReserva()) && getTitular().equals(f.getTitular()) && getOferta().equals(f.getOferta());
		}
	}
	public String toString(){
		if(getOferta()!=null){
		return "ID : "+getID()+", Titular :"+getTitular()+" Fecha :"+getFecha()+" Reserva : "+getReserva()+ ", Oferta aplicable :"+getOferta()+" Total: "+getImporte();
		}else{
			return "ID : "+getID()+", Titular :"+getTitular()+" Fecha :"+getFecha()+" Reserva : "+getReserva()+ ", Total: "+getImporte();	
			
		}
	}
	


}

